// import {mDelDevData, mEditDevData, selectDevConConfig} from '@/api/device'
// import CCard from '@/components/card'
// import DeviceInfoInput from '../input/deviceInfoInput'
// import {PropType} from 'vue'
// import {
//   ByteTypeSelect,
//   DataTypeSelect,
//   NumMadeSelect,
//   ParamSelect,
// } from '../select'
// import {selectItemByTypeSign} from '@/api/information'
// import {CFormItem} from '../form/form-item'

// type DeviceMsg = {
//   target: keyof Device.DevMsg
//   targetValue: string
//   labelKey: keyof Device.DevMsg
//   valueKey: keyof Device.DevMsg
//   isEdit?: boolean
//   isDelete?: boolean
//   match?: {}
// }

// let state_source = reactive<{
//   deviceInfo: Device.ConfInfo | null
// }>({
//   deviceInfo: null,
// })

// /**获取设备监测参数 */
// const getDevConfigInfo = (data: {devGId?: DevGId; devId?: DevId}) => {
//   if (data.devGId) {
//   }

//   if (data.devId) {
//     // selectDevConConfig({devId: data.devId})
//     //   .then(res => {
//     //     console.log(res)
//     //   })
//     //   .catch(err => {})
//   }
// }

// /**修改设备信息 */
// async function handle_edit_deviceMsg(data: Device.EditDevMsgDataSource) {
//   await mEditDevData(data).catch(err => {})
//   let {deviceInfo} = toRefs(state_source)
//   if (deviceInfo.value?.devGId)
//     getDevConfigInfo({
//       devGId: deviceInfo.value?.devGId,
//       devId: deviceInfo.value?.devId,
//     })
// }

// /**删除 设备信息 */
// async function handle_delete_deviceMsg(data: {devDataId: number}) {
//   await mDelDevData(data).catch(err => {})
//   let {deviceInfo} = toRefs(state_source)
//   if (deviceInfo.value?.devGId)
//     getDevConfigInfo({
//       devGId: deviceInfo.value?.devGId,
//       devId: deviceInfo.value?.devId,
//     })
// }

// /**设备基础信息卡片 */
// const DeviceBaseMsgCard = defineComponent({
//   name: 'DeviceBaseMsgCard',
//   setup() {
//     let {deviceInfo} = toRefs(state_source)
//     let deviceBaseMsg: {
//       target: keyof Device.DataSource
//       label: string
//       isEdit?: boolean
//       isDelete?: boolean
//     }[] = [
//       {target: 'devId', label: '设备编号', isEdit: false},
//       {target: 'devName', label: '设备名称'},
//       {target: 'devDesc', label: '设备备注'},
//       {target: 'devTypeId', label: '所属设备类型'},
//       {target: 'devGId', label: '序列号'},
//       // {target: 'dtuId', label: 'DTU编号'},
//       {target: 'devStatus', label: '设备状态', isEdit: false},
//       {target: 'isBind', label: '是否绑定', isEdit: false},
//       {target: 'userId', label: '所属用户', isEdit: false},
//       {target: 'operateUser', label: '操作者', isEdit: false},
//       {target: 'devCreateTime', label: '创建时间', isEdit: false},
//       // {target: 'devCheckTable', label: 'devCheckTable', isEdit: false},
//       // {target: 'checkDataTable', label: 'checkDataTable', isEdit: false},
//     ]
//     return () => {
//       return deviceInfo.value ? (
//         <CCard dividerClass="text-primary" title={'设备基础信息'}>
//           {deviceBaseMsg.map(deviceMsg => (
//             <DeviceInfoInput
//               value={
//                 deviceInfo.value
//                   ? deviceInfo.value[deviceMsg.target]?.toString()
//                   : ''
//               }
//               label={deviceMsg.label}
//               isEdit={false}
//               isDelete={deviceMsg.isDelete}
//             ></DeviceInfoInput>
//           ))}
//         </CCard>
//       ) : null
//     }
//   },
// })

// /**设备信息卡片 */
// const DevTypeMsgCard = defineComponent({
//   name: 'DevTypeMsgCard',
//   props: {
//     options: {
//       type: Array as PropType<Device.DevMsg[]>,
//       default: () => [],
//     },
//   },
//   setup(props) {
//     // const config: DeviceMsg[] = [
//     //   {
//     //     target: 'devDataName',
//     //     targetValue: '设备名称',
//     //     labelKey: 'devDataName',
//     //     valueKey: 'devDataValue',
//     //   },
//     //   {
//     //     target: 'devDataName',
//     //     targetValue: '系统信息',
//     //     labelKey: 'devDataName',
//     //     valueKey: 'devDataValue',
//     //   },
//     //   {
//     //     target: 'devDataName',
//     //     targetValue: '设备地址',
//     //     labelKey: 'devDataName',
//     //     valueKey: 'devDataValue',
//     //   },
//     // ]
//     return () => (
//       <CCard dividerClass="text-primary" title={'设备信息'}>
//         {props.options.map(item => {
//           // let currentConfigItem = config.filter(
//           //   conf => conf.targetValue === item[conf.target]
//           // )[0]

//           // if (!currentConfigItem) return null
//           // let value = item[currentConfigItem.valueKey]
//           // let label = item[currentConfigItem.labelKey]
//           return (
//             <DeviceInfoInput
//               value={item.devDataValue ? item.devDataValue : ''}
//               label={item.devDataName ? item.devDataName : ''}
//               onConfirm={data => {
//                 if (!data) return
//                 handle_edit_deviceMsg({
//                   devId: item.devId as string,
//                   devDataId: item.devDataId,
//                   devDataCode: item.devDataCode,
//                   devDataValue: data,
//                 })
//               }}
//               onDelete={() => {
//                 handle_delete_deviceMsg({
//                   devDataId: item.devDataId,
//                 })
//               }}
//             ></DeviceInfoInput>
//           )
//         })}
//       </CCard>
//     )
//   },
// })

// /**设备设置卡片 */
// const DevTypeSetCard = defineComponent({
//   name: 'DevTypeSetCard',
//   props: {
//     options: {
//       type: Array as PropType<Device.DevMsg[]>,
//       default: () => [],
//     },
//   },
//   setup(props) {
//     const config: DeviceMsg[] = [
//       {
//         target: 'devDataName',
//         targetValue: '数据开关',
//         labelKey: 'devDataName',
//         valueKey: 'devDataValue',
//       },
//       {
//         target: 'devDataName',
//         targetValue: '采集频率',
//         labelKey: 'devDataName',
//         valueKey: 'devDataValue',
//       },
//       {
//         target: 'devDataName',
//         targetValue: '心跳包',
//         labelKey: 'devDataName',
//         valueKey: 'devDataValue',
//       },
//     ]
//     return () => (
//       <CCard dividerClass="text-primary" title={'设备设置'}>
//         {props.options.map(item => {
//           let currentConfigItem = config.filter(
//             conf => conf.targetValue === item[conf.target]
//           )[0]

//           if (!currentConfigItem) return null
//           let value = item[currentConfigItem.valueKey]
//           let label = item[currentConfigItem.labelKey]
//           return (
//             <DeviceInfoInput
//               value={value ? value.toString() : ''}
//               label={label ? label.toString() : ''}
//               isEdit={currentConfigItem.isEdit}
//               isDelete={currentConfigItem.isDelete}
//               onConfirm={data => {
//                 if (!data) return
//                 handle_edit_deviceMsg({
//                   devId: item.devId as string,
//                   devDataId: item.devDataId,
//                   devDataCode: item.devDataCode,
//                   devDataValue: data,
//                 })
//               }}
//               onDelete={() => {
//                 handle_delete_deviceMsg({
//                   devDataId: item.devDataId,
//                 })
//               }}
//             ></DeviceInfoInput>
//           )
//         })}
//       </CCard>
//     )
//   },
// })

// /**设备功能卡片 */
// const DevTypeFunCard = defineComponent({
//   name: 'DevTypeFunCard',
//   props: {
//     options: {
//       type: Array as PropType<Device.DevMsg[]>,
//       default: () => [],
//     },
//   },
//   setup(props) {
//     const config: DeviceMsg[] = [
//       {
//         target: 'devDataName',
//         targetValue: '基本信息',
//         labelKey: 'devDataName',
//         valueKey: 'devDataValue',
//       },
//       {
//         target: 'devDataName',
//         targetValue: '分享设备',
//         labelKey: 'devDataName',
//         valueKey: 'devDataValue',
//       },
//       {
//         target: 'devDataName',
//         targetValue: '数据信息',
//         labelKey: 'devDataName',
//         valueKey: 'devDataValue',
//       },
//       {
//         target: 'devDataName',
//         targetValue: '设备状态',
//         labelKey: 'devDataName',
//         valueKey: 'devDataValue',
//       },
//       {
//         target: 'devDataName',
//         targetValue: '设备配置',
//         labelKey: 'devDataName',
//         valueKey: 'devDataValue',
//       },
//       {
//         target: 'devDataName',
//         targetValue: '合格标准',
//         labelKey: 'devDataName',
//         valueKey: 'devDataValue',
//       },
//     ]
//     return () => (
//       <CCard dividerClass="text-primary" title={'设备功能'}>
//         {props.options.map(item => {
//           let currentConfigItem = config.filter(
//             conf => conf.targetValue === item[conf.target]
//           )[0]

//           if (!currentConfigItem) return null
//           let value = item[currentConfigItem.valueKey]
//           let label = item[currentConfigItem.labelKey]
//           return (
//             <DeviceInfoInput
//               value={value ? value.toString() : ''}
//               label={label ? label.toString() : ''}
//               isEdit={currentConfigItem.isEdit}
//               isDelete={currentConfigItem.isDelete}
//               onConfirm={data => {
//                 if (!data) return
//                 handle_edit_deviceMsg({
//                   devId: item.devId as string,
//                   devDataId: item.devDataId,
//                   devDataCode: item.devDataCode,
//                   devDataValue: data,
//                 })
//               }}
//               onDelete={() => {
//                 handle_delete_deviceMsg({
//                   devDataId: item.devDataId,
//                 })
//               }}
//             ></DeviceInfoInput>
//           )
//         })}
//       </CCard>
//     )
//   },
// })

// /**设备通讯方式卡片 */
// const DevTypeTxTypeCard = defineComponent({
//   name: 'DevTypeTxTypeCard',
//   props: {
//     options: {
//       type: Array as PropType<Device.DevMsg[]>,
//       default: () => [],
//     },
//   },
//   setup(props) {
//     const config: DeviceMsg[] = [
//       {
//         target: 'devDataName',
//         targetValue: 'MQTT',
//         labelKey: 'devDataName',
//         valueKey: 'devDataValue',
//       },
//       {
//         target: 'devDataName',
//         targetValue: 'SOCKET',
//         labelKey: 'devDataName',
//         valueKey: 'devDataValue',
//       },
//     ]
//     return () => (
//       <CCard dividerClass="text-primary" title={'设备通讯方式'}>
//         {props.options.map(item => {
//           let currentConfigItem = config.filter(
//             conf => conf.targetValue === item[conf.target]
//           )[0]

//           if (!currentConfigItem) return null
//           let value = item[currentConfigItem.valueKey]
//           let label = item[currentConfigItem.labelKey]
//           return (
//             <DeviceInfoInput
//               value={value ? value.toString() : ''}
//               label={label ? label.toString() : ''}
//               isEdit={currentConfigItem.isEdit}
//               isDelete={currentConfigItem.isDelete}
//               onConfirm={data => {
//                 if (!data) return
//                 handle_edit_deviceMsg({
//                   devId: item.devId as string,
//                   devDataId: item.devDataId,
//                   devDataCode: item.devDataCode,
//                   devDataValue: data,
//                 })
//               }}
//               onDelete={() => {
//                 handle_delete_deviceMsg({
//                   devDataId: item.devDataId,
//                 })
//               }}
//             ></DeviceInfoInput>
//           )
//         })}
//       </CCard>
//     )
//   },
// })

// /**设备数据格式卡片 */
// const DevTypeDataTypeCard = defineComponent({
//   name: 'DevTypeDataTypeCard',
//   props: {
//     options: {
//       type: Array as PropType<Device.DevMsg[]>,
//       default: () => [],
//     },
//   },
//   setup(props) {
//     const config: DeviceMsg[] = [
//       {
//         target: 'devDataName',
//         targetValue: 'JSON',
//         labelKey: 'devDataName',
//         valueKey: 'devDataValue',
//       },
//       {
//         target: 'devDataName',
//         targetValue: 'MODBUS',
//         labelKey: 'devDataName',
//         valueKey: 'devDataValue',
//       },
//     ]
//     return () => (
//       <CCard dividerClass="text-primary" title={'设备数据格式'}>
//         {props.options.map(item => {
//           let currentConfigItem = config.filter(
//             conf => conf.targetValue === item[conf.target]
//           )[0]

//           if (!currentConfigItem) return null
//           let value = item[currentConfigItem.valueKey]
//           let label = item[currentConfigItem.labelKey]
//           return (
//             <DeviceInfoInput
//               value={value ? value.toString() : ''}
//               label={label ? label.toString() : ''}
//               isEdit={currentConfigItem.isEdit}
//               isDelete={currentConfigItem.isDelete}
//               onConfirm={data => {
//                 if (!data) return
//                 handle_edit_deviceMsg({
//                   devId: item.devId as string,
//                   devDataId: item.devDataId,
//                   devDataCode: item.devDataCode,
//                   devDataValue: data,
//                 })
//               }}
//               onDelete={() => {
//                 handle_delete_deviceMsg({
//                   devDataId: item.devDataId,
//                 })
//               }}
//             ></DeviceInfoInput>
//           )
//         })}
//       </CCard>
//     )
//   },
// })

// /**合格标准卡片 */
// const DevTypeParamRangeCard = defineComponent({
//   name: 'DevTypeParamRangeCard',
//   props: {
//     options: {
//       type: Array as PropType<Device.DevMsg[]>,
//       default: () => [],
//     },
//   },
//   setup(props) {
//     return () => (
//       <CCard dividerClass="text-primary" title={'合格标准'}>
//         {props.options.map(item => {
//           return (
//             <DeviceInfoInput
//               inputType="paramRange"
//               value={item.devDataValue ? item.devDataValue : ''}
//               label={item.devDataName ? item.devDataName : ''}
//               isDelete={false}
//               onConfirm={data => {
//                 if (!data) return
//                 handle_edit_deviceMsg({
//                   devId: item.devId as string,
//                   devDataId: item.devDataId,
//                   devDataCode: item.devDataCode,
//                   devDataValue: data,
//                 })
//               }}
//               onDelete={() => {
//                 handle_delete_deviceMsg({
//                   devDataId: item.devDataId,
//                 })
//               }}
//             ></DeviceInfoInput>
//           )
//         })}
//       </CCard>
//     )
//   },
// })

// /**产品资料卡片 */
// const DevTypeProductFileCard = defineComponent({
//   name: 'DevTypeProductFileCard',
//   props: {
//     options: {
//       type: Array as PropType<Device.DevMsg[]>,
//       default: () => [],
//     },
//   },
//   setup(props) {
//     const config: DeviceMsg[] = [
//       {
//         target: 'devDataName',
//         targetValue: '电子说明书',
//         labelKey: 'devDataName',
//         valueKey: 'devDataValue',
//       },
//       {
//         target: 'devDataName',
//         targetValue: '操作视频',
//         labelKey: 'devDataName',
//         valueKey: 'devDataValue',
//       },
//     ]
//     return () => (
//       <CCard dividerClass="text-primary" title={'产品资料'}>
//         {props.options.map(item => {
//           let currentConfigItem = config.filter(
//             conf => conf.targetValue === item[conf.target]
//           )[0]

//           if (!currentConfigItem) return null
//           let value = item[currentConfigItem.valueKey]
//           let label = item[currentConfigItem.labelKey]
//           return (
//             <DeviceInfoInput
//               value={value ? value.toString() : ''}
//               label={label ? label.toString() : ''}
//               isEdit={currentConfigItem.isEdit}
//               isDelete={currentConfigItem.isDelete}
//               onConfirm={data => {
//                 if (!data) return
//                 handle_edit_deviceMsg({
//                   devId: item.devId as string,
//                   devDataId: item.devDataId,
//                   devDataCode: item.devDataCode,
//                   devDataValue: data,
//                 })
//               }}
//               onDelete={() => {
//                 handle_delete_deviceMsg({
//                   devDataId: item.devDataId,
//                 })
//               }}
//             ></DeviceInfoInput>
//           )
//         })}
//       </CCard>
//     )
//   },
// })

// /**设备动态信息卡片 */
// const DeviceDynamicMsgCard = defineComponent({
//   name: 'DeviceDynamicMsgCard',
//   setup() {
//     let {deviceInfo} = toRefs(state_source)
//     return () => {
//       return deviceInfo.value?.detailDataList.map(detailData => {
//         switch (detailData.typeName) {
//           case '设备信息':
//             return <DevTypeMsgCard options={detailData.data}></DevTypeMsgCard>
//           case '设备功能':
//             return <DevTypeFunCard options={detailData.data}></DevTypeFunCard>
//           case '设备设置':
//             return <DevTypeSetCard options={detailData.data}></DevTypeSetCard>
//           case '通讯方式':
//             return (
//               <DevTypeTxTypeCard options={detailData.data}></DevTypeTxTypeCard>
//             )
//           case '数据格式':
//             return (
//               <DevTypeDataTypeCard
//                 options={detailData.data}
//               ></DevTypeDataTypeCard>
//             )
//           case '产品资料':
//             return (
//               <DevTypeProductFileCard
//                 options={detailData.data}
//               ></DevTypeProductFileCard>
//             )
//           case '参数标准':
//             return (
//               <DevTypeParamRangeCard
//                 options={detailData.data}
//               ></DevTypeParamRangeCard>
//             )
//           default:
//         }
//       })
//     }
//   },
// })

// /**传输协议卡片 modbus */
// const DeviceConConfigCard = defineComponent({
//   setup(props, ctx) {
//     return
//   },
// })

// const DeviceInfoCard = defineComponent({
//   name: 'DeviceInfoCard',
//   props: {
//     devGId: {
//       type: String as PropType<DevGId>,
//     },
//     devId: {
//       type: Number as PropType<DevId>,
//     },
//   },
//   setup(props) {
//     let {devGId} = toRefs(props)
//     onMounted(() => {
//       if (devGId.value) getDevConfigInfo({devGId: devGId.value})
//       if (props.devId) {
//         getDevConfigInfo({devId: props.devId})
//       }
//     })
//     return () => (
//       <div>
//         <DeviceBaseMsgCard></DeviceBaseMsgCard>
//         <DeviceDynamicMsgCard></DeviceDynamicMsgCard>
//       </div>
//     )
//   },
// })
// export default DeviceInfoCard
